Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

deSurface.hpp

Go to the documentation of this file.
00001 ///////////////////////////////////////////////////////////////////////////////
00002 /// @file deSurface.hpp
00003 ///
00004 /// @brief Surface attributes for rendering with
00005 ///
00006 /// @author Assassin
00007 ///
00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
00009 /// contents of this file is subject to the Destiny3D Member License which
00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
00011 ///
00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
00014 /// for any particular purpose.
00015 ///
00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
00017 ///
00018 /// <hr>
00019 ///                                 Change History
00020 /// <hr>
00021 ///
00022 /// @date June 2003
00023 /// @author Assassin
00024 /// @remarks Creation
00025 ///
00026 ///////////////////////////////////////////////////////////////////////////////
00027 
00028 #ifndef DESURFACE_HPP
00029 #define DESURFACE_HPP
00030 
00031 #include "deRenderStates.hpp"
00032 #include "deWorld.hpp"
00033 
00034 #ifdef USING_DESTINY3D
00035 #ifdef _DEBUG
00036 #   ifdef DESTINY3D_STATIC_LINK
00037 #       pragma comment(lib, "deDriver_sd")
00038 #   else
00039 #       pragma comment(lib, "deDriverd")
00040 #   endif //DESTINY3D_STATIC_LINK
00041 #else
00042 #   ifdef DESTINY3D_STATIC_LINK
00043 #       pragma comment(lib, "deDriver_s")
00044 #   else
00045 #       pragma comment(lib, "deDriver")
00046 #   endif //DESTINY3D_STATIC_LINK
00047 #endif //_DEBUG
00048 #endif //USING_DESTINY3D
00049 
00050 class IdeSurface;
00051 
00052 // C export factory functions
00053 /// Create an instance of IdeSurface
00054 RENDERSTATE_API IdeSurface* IdeSurface_CreateSurface();
00055 /// Get the IdeSurface WorldObject interface ID
00056 RENDERSTATE_API long IdeSurface_GetWOInterfaceID();
00057 
00058 /// Container & processing class for handling surface attributes of geometry.
00059 /// Related functions: IdeSurface_CreateSurface, IdeSurface_GetWOInterfaceID
00060 //class IdeSurface : virtual public IdeWorldObject
00061 DE3D_INTERFACE(IdeSurface, IdeWorldObject)
00062 {
00063 protected:
00064     virtual ~IdeSurface() {}
00065 public:
00066 
00067     /// set an IdeRenderTexture (placeholder method while refactoring)
00068     virtual void    SetRenderTexture(IdeRenderTexture* pRT) = 0;
00069     /// set an IdeRenderMaterial (placeholder method while refactoring)
00070     virtual void    SetRenderMaterial(IdeRenderMaterial* pRM) = 0;
00071 
00072     virtual IdeRenderTexture*   GetRenderTexture() = 0;
00073     virtual IdeRenderMaterial*  GetRenderMaterial() = 0;
00074 };
00075 
00076 //DE3D_INTERFACE(IdeTextureSet, IdeWorldObject)
00077 DE3D_INTERFACE(IdeTextureSet, IdeRefCountBase)
00078 {
00079 protected:
00080     virtual ~IdeTextureSet() {}
00081 public:
00082     
00083     virtual u32 GetNumTextures() const = 0;
00084     virtual const char* GetNameByIndex(s32 index) const = 0;
00085     virtual s32 GetIndexByName(const char* name) const = 0;
00086     virtual IdeBitmapProxy* GetTextureByIndex(s32 index) const = 0;
00087     virtual IdeBitmapProxy* GetTextureByName(const char* name) const = 0;
00088     
00089     virtual deBoolean AddTextureName(const char* name, s32* index) = 0;
00090     virtual deBoolean SetTextureByIndex(s32 index, IdeBitmapProxy* tex) = 0;
00091     virtual deBoolean SetTextureByName(const char* name, IdeBitmapProxy* tex) = 0;
00092     
00093     virtual IdeTextureSet*  CloneTextureSet(const char** names) = 0;
00094 };
00095 
00096 #endif //DESURFACE_HPP
00097 

Generated on Mon Sep 12 19:58:40 2005 for Destiny3D by doxygen1.3-rc3